import System( getArgs )
import Test

data Queue t = Queue [t]

makeTup (Queue x) = x

newQueue = Queue []

push x (Queue q) = Queue (x:q)

remove (Queue x) = Queue (remove' x)
remove' [x] = []
remove' (x:l) = x:(remove' l)

peek (Queue x) = peek' x
peek' [x] = x
peek' (x:l) = peek' l

main = do args <- getArgs
          writeFile "out.dat" "tmp\n"
          writeFile "result.dat" ("Queue 1 Results:" ++ "\n")
          --Test.multiTest push remove newQueue makeTup (rInt (head args)) (rInt (head (tail args)))
          --Test.pushPop push remove newQueue makeTup (rInt (head args))
          let q = Queue [1..(rInt (head args))]
          --Test.removeTest remove q makeTup (rInt (head args)) (rInt (head (tail args))) 0
          --Test.pushTest push peek (push 1 newQueue) makeTup (rInt (head args)) (rInt (head (tail args))) 0
          Test.pushremovenTest push remove newQueue makeTup (rInt (head args)) (rInt (head (tail args))) 0